{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "$\\newcommand\\E{{\\mathbf E}}$\n", "$\\newcommand\\indi[1]{{\\mathbf 1}_{\\displaystyle #1}}$\n", "$\\newcommand\\inde[1]{{\\mathbf 1}_{\\displaystyle\\left\\{ #1 \\right\\}}}$\n", "$\\newcommand{\\ind}{\\inde}$\n", "$\\newcommand\\P{{\\mathbf P}}$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "La première partie reprend le problème du vendeur de journeaux à un pas de temps.\n", "\n", "Le problème du vendeur de journaux (à une période de temps)\n", "\n", "Chaque matin, le vendeur doit décider d’un nombre de journaux à commander \n", "$u \\in \\mathbb{U}= \\{0, 1, \\ldots\\}$ au prix unitaire $c > 0$.\n", "La demande du jour est incertaine $ w \\in \\mathbb{W} = \\{0, 1, \\ldots\\}$\n", "\n", "Si à la fin de la journée il lui reste des invendus: coût unitaire $c_S \\in \\mathbb{R}$ :\n", "$$\n", " c_S{(u − w )}_{+} = c_S \\max (u − w,0) \\quad \\text{avec} c + c_S >0 \n", "$$\n", " \n", "Si à la fin de la journée il n’a pas pu faire face à la demande on associe un coût unitaire $c_M$. \n", "Le coût lié à la non satisfaction de la demande est\n", "$$\n", " c_M {(w − u )}_{+} = c_M \\max (w − u,0) \n", "$$\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On utilisera plusieurs lois possibles pour la demande aléatoire\n", "La valeur de law permet de selectionner une loi\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np;\n", "from scipy.special import comb;\n", "from scipy.special import gamma;\n", "import matplotlib.pyplot as plt\n", "import io;" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "binomiale=1\n", "discrete=2\n", "poisson=3\n", "\n", "def choisir_loi(law):\n", "\n", " if law == binomiale: ## loi binomiale\n", " n=100\n", " p=0.5\n", "\n", " buf = io.StringIO()\n", " buf.write(\"loi binomiale(%d,%5.2f)\" % (n,p))\n", " title = buf.getvalue()\n", " \n", " wi = np.linspace(0,n,num=n+1) ## les valeurs possibles {0,1,...,n}\n", " ## pdf(\"bin\",x,n,p) = n!/x!(n-x)! p^x (1-p)^n-x \n", " nn = n*np.ones(n+1)\n", " pi=comb(nn,wi, exact=False) * pow(p,wi)*pow(1-p,n-wi)\n", "\n", " mu=n*p; ## moyenne de la binomiale \n", " mu1= sum(pi*wi) ; ## vérification \n", " if abs(mu-mu1) > 1.e-8:\n", " print(\"something wrong in binomial law expectation\")\n", " wait = input(\"PRESS ENTER TO CONTINUE.\")\n", " \n", " # un echantillong de taille N\n", " N=1000\n", " #W=grand(1,N,\"bin\",n,p);\n", " W = np.random.binomial(n, p, N)\n", " \n", " if law == discrete: ## une loi discrète \n", " n=3\n", " wi=np.array([30,50,80])\n", " pi=np.array([1/2,1/4,1/4])\n", " buf = io.StringIO()\n", " buf.write(\"loi discrète sur %d valeurs\" % wi.size)\n", " title = buf.getvalue()\n", " mu=sum(pi*wi) ## la moyenne\n", "\n", " N=1000\n", " # un echantillong de taille N\n", " W=np.random.choice(wi, N, p=pi) # un échantillon de taille N selon la loi pi\n", " \n", " if law == poisson: ## loi de Poisson de paramètre mu \n", " n=100;\n", " p=0.5;\n", " mu=n*p;\n", " wi=np.linspace(0,n,num=n+1); ## les valeurs possibles \n", " pi=( pow(mu,wi) *np.exp(-mu)) / gamma(wi+1);\n", " buf = io.StringIO();\n", " buf.write(\"Poisson %f\" % mu);\n", " title = buf.getvalue();\n", " moy = sum(pi*wi);\n", " N=100000;\n", " W= np.random.poisson(mu, N);\n", " moye=sum(W)/N # doit converger vers moy lorsque N grand\n", "\n", " return pi, wi, W, title" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "def hist_plot(samples,support=[],width=5):\n", "# trace des historgrammes de loi à support fini\n", " if np.size(support)==0:\n", " support = np.sort(list(dict.fromkeys(samples)))\n", " histo=np.zeros(support.size);\n", " for i in range(support.size):\n", " histo[i]=np.size(np.where(samples==support[i]))/(samples.size)\n", " # On trace cet histogramme\n", " plt.bar(support, histo,width)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "La loi théorique et la loi empirique sont proches mais légérement différentes. C'est normal.\n" ] } ], "source": [ "pi, wi, W, title = choisir_loi(discrete) # poisson, binomiale, discrete\n", "\n", "fig = plt.gcf()\n", "plt.subplot(1, 3,1);\n", "data1= wi;\n", "plt.step(wi,np.cumsum(pi),where='post',marker='o',markerfacecolor='r');\n", "plt.title(\"cdf :\" + title)\n", "\n", "plt.subplot(1, 3,2);\n", "plt.bar(wi,pi,width=5)\n", "plt.title(\"loi théorique\"); \n", "\n", "plt.subplot(1, 3,3);\n", "hist_plot(W,wi)\n", "plt.title(\"loi empirique\"); \n", "\n", "fig.tight_layout()\n", "plt.show()\n", "\n", "print(\"La loi théorique et la loi empirique sont proches mais légérement différentes. C'est normal.\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Question : Écrire une fonction qui calcule $j(u,w)$ puis une fonction qui calcule $J(u)$. Faire un graphique avec les valeurs proposées des constantes et calculer le nombre de journaux qu’il faut commander " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Cas discrêt: Nombre optimal de journaux a commander *30.000000*, Moyenne de la demande *47.500000*\n", "\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "c=10;cm=20;cs=5;cf=200;\n", "\n", "# la fonction coût j(u,w)\n", "def jj(u,w):\n", " return c*u + cs*np.maximum(u - w,0) + cm*np.maximum(w - u,0);\n", "\n", "\n", "def J(u,pi,wi):\n", " #return np.sum(pi*j(u,wi))\n", " return c*u + cs*sum(pi*np.maximum(u - wi,0)) + cm*sum(pi*np.maximum(wi - u,0));\n", "\n", "def resultats(pi,wi,dessin='oui'):\n", "# draw the function and the minimum \n", "\n", " # remplir val avec les valeurs de J(u) quand u varie de -10 a 100 avec un pas de 1\n", " u=np.linspace(-10,100,num=111)\n", " val=np.zeros(u.size);\n", " for i in range(0,u.size):\n", " val[i]=J(u[i],pi,wi)\n", " \n", " # recherche du min \n", " imin=np.argmin(val)\n", " uopt = u[imin]\n", " \n", " if dessin=='oui':\n", " plt.plot(u,val);\n", " plt.title(\"fonction coût\");\n", " plt.plot(uopt,val[imin],marker='o',markerfacecolor='r')\n", "\n", " print(\"Nombre optimal de journaux a commander *%f*, \" % uopt,end='');\n", " print(\"Moyenne de la demande *%f*\\n\" % sum(wi*pi));\n", "\n", " return uopt\n", "\n", "pi, wi, W, title = choisir_loi(discrete) # poisson, binomiale, discrete\n", "print('Cas discrêt: ',end='')\n", "resultats(pi,wi)\n", "plt.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Question : Vérifier sur un graphique que le nombre de journaux optimal à commander s’obtient par la formule :\n", "$$\n", " uopt = \\inf \\{z \\in \\mathbb{R} \\vert F(z) \\ge \\frac{(c_M − c)}{ (c_M + c_S )}\\}\n", "$$" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# On dessine F \n", "\n", "fstar = (cm-c)/(cm+cs);\n", "Fv= np.cumsum(pi);\n", "plt.clf()\n", "xx=np.hstack((np.array([0]),wi));\n", "yy=np.hstack((np.array([0]),Fv));\n", "plt.step(xx,yy,where='post') # marker='o',markerfacecolor='r');\n", "plt.plot(xx,fstar*np.ones(xx.size))\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# chercher l'indice qui donne uopt \n", "\n", "kopt=0\n", "for i in range(0,Fv.size):\n", " if Fv[i] >= fstar:\n", " kopt=i\n", " break;\n", " \n", "plt.step(xx,yy,where='post') # marker='o',markerfacecolor='r');\n", "plt.plot(xx,fstar*np.ones(xx.size))\n", "plt.plot(wi[kopt],Fv[kopt],marker='o',markeredgewidth=5,markeredgecolor='r',markerfacecolor='r');\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1.3 On utilise maintenant une loi discrète à 3 valeurs\n", "\n", "Dans le cas précédent, on trouve que le nombre de journaux optimal à commander est très voisin de la moyenne de la demande. On cherche ici à construire un exemple ou les deux nombres seront franchement différents.\n", "\n", "\n", "Question 4 Reprendre ce qui précède, en vous plaçant maintenant dans le cas test=2 et chercher à caler des valeurs des probabilités qui permettent d’obtenir le résultat souhaité.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__1.4 La loi du coût__\n", "\n", "Question 5 Dans les cas test=1 et test=2, faites un graphique de la loi du coût pour diverses valeurs de la commande u. On procédera de deux façons différentes\n", "\n", " En calculant la loi du coût.\n", " En approchant la loi du coût au moyen de tirages de la demande (loi empirique des coûts).\n", "\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "53\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.clf()\n", "\n", "def draw_cost(u,W):\n", " #count, bins, ignored = plt.hist(j(u,W),density=True)\n", " samples=jj(u,W)\n", " max_samples=max(samples)\n", " hist_plot(samples,width=5)\n", " return max_samples\n", "\n", "# poisson , discrete, binomiale\n", "pi, wi, W, title = choisir_loi(binomiale)\n", "\n", "u=49\n", "# commence par traiter le problème par simulation (avec W)\n", "max_samples=draw_cost(u,W);\n", "plt.show()\n", "\n", "# calcul de la loi exacte\n", "valeurs=jj(u,wi) # toutes les valeurs de j(u,wi[i])\n", "support = np.sort(list(dict.fromkeys(valeurs))) \n", " # on calcule le support de la loi\n", " # en enlevant les valeurs en double\n", "loi=np.zeros(support.size) # on va calculer la loi de j(u,W)\n", "for i in range(support.size):\n", " for k in range(wi.size):\n", " if jj(u,wi[k]) == support[i]:\n", " loi[i]=loi[i]+pi[k]\n", "\n", "# on tronque l'histogramme au delà de la valeur max_samples\n", "for imax in range(support.size):\n", " if support[imax] > max_samples:\n", " print(imax);break\n", "imax=imax-1\n", " \n", "# On trace cet histogramme\n", "plt.bar(support[0:imax], loi[0:imax],width=5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__1.6 Une stratégie $[s,S]$__\n", "\n", "On regarde maintenant un cas ou le vendeur à déjà des journaux et ou il paye un coup fixe si il commande des journaux. \n", "On cherche à retrouver ici le fait que la stratégie optimale est de la forme $[s,S]$.\n", "\n", "Question 7 On se placera dans le cas test=1. Calculer le nombre optimal de journaux à commander \n", "suivant la valeur du stock initial. \n", "Vérifier que la stratégie est bien de la forme $[s,S]$ : \n", "on remonte le stock au niveau $S$ si il est inférieur à $s$ et on ne fait rien sinon. \n", "Calculer $s$ par la formule\n", "$$\n", "s = \\sup \\{z \\in (- \\infty, S) \\vert J(z) \\ge c_F + J(S ) \\} \n", "$$" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1) Calcul par une méthode brutale : valeur de s=25.000000 et de S=49.000000\n", "\n", "On vérifie que pour x en dessous de 25.0 , x+uopt=cte= 49.0\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAC+RJREFUeJzt3G+MZfVdx/H3p2y1CS5NWwaCXdbRWmO0SbGZEM1qQ2lKLGABFbJEzBqt64OaoA+gxZi0PjAao5VnVcSaNUr/JHQLBYMQcGP7pDBDsUBXa0OWSpewi20CTfwTytcHczYZcGbvvbNz5zLf+349ufece+7e7y+HvPfsmTukqpAk7Xyvm/UAkqStYdAlqQmDLklNGHRJasKgS1ITBl2SmjDoktSEQZekJgy6JDWxazs/7Nxzz63FxcXt/EhJ2vFWVlaer6qFUcdta9AXFxdZXl7ezo+UpB0vydPjHOctF0lqwqBLUhMGXZKaMOiS1IRBl6QmDLokNWHQJakJgy5JTRh0SWrCoEtSEwZdkpow6JLUhEGXpCYMuiQ1YdAlqQmDLklNGHRJasKgS1ITBl2SmjDoktSEQZekJgy6JDVh0CWpibGCnuRYkseTPJZkedh3bZInk7ycZGm6Y0qSRtk1wbHvqarn12w/Afwi8JdbO5IkaTMmCforVNVRgCRbN40kadPGvYdewP1JVpIcnOQDkhxMspxk+eTJk5NPKEkay7hB31dV7wLeD3woybvH/YCquq2qlqpqaWFhYVNDSpJGGyvoVXV8eDwBHAYunuZQkqTJjQx6krOT7D71HLiM1R+ISpJeQ8a5Qj8f+FKSfwEeBu6tqvuSXJPkGeBngHuT/OM0B5Uknd7Ib7lU1VPAO9fZf5jV2y+SpNcAf1NUkpow6JLUhEGXpCYMuiQ1YdAlqQmDLklNGHRJasKgS1ITBl2SmjDoktSEQZekJgy6JDVh0CWpCYMuSU0YdElqwqBLUhMGXZKaMOiS1IRBl6QmDLokNWHQJakJgy5JTRh0SWrCoEtSEwZdkpow6JLUhEGXpCYMuiQ1YdAlqQmDLklNGHRJamLXOAclOQa8CHwPeKmqlpK8GfgMsAgcA66rqu9MZ0xJ0iiTXKG/p6ouqqqlYfsjwINV9XbgwWFbkjQjZ3LL5Srg0PD8EHD1mY8jSdqscYNewP1JVpIcHPadX1XPAgyP501jQEnSeMa6hw7sq6rjSc4DHkjyr+N+wPAXwEGAvXv3bmJESdI4xrpCr6rjw+MJ4DBwMfBckgsAhscTG7z3tqpaqqqlhYWFrZlakvT/jAx6krOT7D71HLgMeAK4GzgwHHYAuGtaQ0qSRhvnlsv5wOEkp46/o6ruS/II8NkkvwF8E7h2emNKkkYZGfSqegp45zr7/xN47zSGkiRNzt8UlaQmDLokNWHQJakJgy5JTRh0SWrCoEtSEwZdkpow6JLUhEGXpCYMuiQ1YdAlqQmDLklNGHRJasKgS1ITBl2SmjDoktSEQZekJgy6JDVh0CWpCYMuSU0YdElqwqBLUhMGXZKaMOiS1IRBl6QmDLokNWHQJakJgy5JTRh0SWrCoEtSEwZdkpoYO+hJzkrylST3DNuXJnk0yRNJDiXZNb0xJUmjTHKFfiNwFCDJ64BDwP6qegfwNHBg68eTJI1rrKAn2QNcAdw+7HoL8D9V9fVh+wHgl7Z+PEnSuMa9TXIrcDOwe9h+Hnh9kqWqWgZ+GbhwCvMB8AdfeJKvHX9hWn+8JE3dT/zgOXz0F35yqp8x8go9yZXAiapaObWvqgrYD/x5koeBF4GXNnj/wSTLSZZPnjy5RWNLkl4tq20+zQHJHwG/ymqw3wCcA3yuqm5Yc8xlwAer6rrT/VlLS0u1vLx8xkNL0jxJslJVS6OOG3mFXlW3VNWeqlpk9ar8oaq6Icl5wwd9P/Bh4C/OcGZJ0hk4k++h35TkKPBV4AtV9dAWzSRJ2oSJvjteVUeAI8Pzm4Cbtn4kSdJm+JuiktSEQZekJgy6JDVh0CWpCYMuSU0YdElqwqBLUhMGXZKaMOiS1IRBl6QmDLokNWHQJakJgy5JTRh0SWrCoEtSEwZdkpow6JLUhEGXpCYMuiQ1YdAlqQmDLklNGHRJasKgS1ITBl2SmjDoktSEQZekJgy6JDVh0CWpCYMuSU0YdElqwqBLUhMGXZKaGDvoSc5K8pUk9wzb703yaJLHknwpyY9Ob0xJ0iiTXKHfCBxds/0J4Feq6iLgDuD3t3IwSdJkxgp6kj3AFcDta3YXcM7w/I3A8a0dTZI0iV1jHncrcDOwe82+DwL/kOS/gBeAn17vjUkOAgcB9u7du/lJJUmnNfIKPcmVwImqWnnVS78LXF5Ve4C/AT6+3vur6raqWqqqpYWFhTMeWJK0vnGu0PcBH0hyOfAG4Jwk9wI/XlVfHo75DHDflGaUJI1h5BV6Vd1SVXuqahHYDzwEXAW8McmPDYe9j1f+wFSStM3GvYf+ClX1UpLfBO5M8jLwHeDXt3QySdJEJgp6VR0BjgzPDwOHt34kSdJm+JuiktSEQZekJgy6JDVh0CWpCYMuSU0YdElqwqBLUhMGXZKaMOiS1IRBl6QmDLokNWHQJakJgy5JTRh0SWrCoEtSEwZdkpow6JLUhEGXpCYMuiQ1YdAlqQmDLklNGHRJasKgS1ITBl2SmjDoktSEQZekJgy6JDVh0CWpCYMuSU0YdElqwqBLUhO7xj0wyVnAMvCtqroyyReB3cPL5wEPV9XVU5hRkjSGsYMO3AgcBc4BqKqfO/VCkjuBu7Z2NEnSJMa65ZJkD3AFcPs6r+0GLgU+v7WjSZImMe499FuBm4GX13ntGuDBqnphy6aSJE1sZNCTXAmcqKqVDQ65HvjUad5/MMlykuWTJ09uckxJ0ijjXKHvAz6Q5BjwaeDSJH8HkOQtwMXAvRu9uapuq6qlqlpaWFjYgpElSesZGfSquqWq9lTVIrAfeKiqbhhevha4p6r+e4ozSpLGcKbfQ9/PaW63SJK2zyRfW6SqjgBH1mxfsrXjSJI2y98UlaQmDLokNWHQJakJgy5JTRh0SWrCoEtSEwZdkpow6JLUhEGXpCYMuiQ1YdAlqQmDLklNGHRJasKgS1ITBl2SmjDoktSEQZekJgy6JDVh0CWpCYMuSU0YdElqwqBLUhMGXZKaSFVt34clJ4GnN/n2c4Hnt3CcnWae1+/a59c8r3/t2n+oqhZGvWFbg34mkixX1dKs55iVeV6/a5/PtcN8r38za/eWiyQ1YdAlqYmdFPTbZj3AjM3z+l37/Jrn9U+89h1zD12SdHo76QpdknQaOyLoSX4+yb8l+UaSj8x6nu2U5FiSx5M8lmR51vNMW5JPJjmR5Ik1+96c5IEk/z48vmmWM07LBmv/WJJvDef/sSSXz3LGaUlyYZJ/SnI0yZNJbhz2z8u532j9E53/1/wtlyRnAV8H3gc8AzwCXF9VX5vpYNskyTFgqarm4ru4Sd4NfBf426p6x7DvT4BvV9UfD3+hv6mqPjzLOadhg7V/DPhuVf3pLGebtiQXABdU1aNJdgMrwNXArzEf536j9V/HBOd/J1yhXwx8o6qeqqr/BT4NXDXjmTQlVfXPwLdftfsq4NDw/BCr/6G3s8Ha50JVPVtVjw7PXwSOAm9lfs79RuufyE4I+luB/1iz/QybWOgOVsD9SVaSHJz1MDNyflU9C6v/4QPnzXie7fbbSb463JJpecthrSSLwE8BX2YOz/2r1g8TnP+dEPSss++1fZ9oa+2rqncB7wc+NPyzXPPjE8DbgIuAZ4E/m+0405XkB4A7gd+pqhdmPc92W2f9E53/nRD0Z4AL12zvAY7PaJZtV1XHh8cTwGFWb0HNm+eGe4yn7jWemPE826aqnquq71XVy8Bf0fj8J3k9qzH7+6r63LB7bs79euuf9PzvhKA/Arw9yQ8n+T5gP3D3jGfaFknOHn5AQpKzgcuAJ07/rpbuBg4Mzw8Ad81wlm11KmaDa2h6/pME+GvgaFV9fM1Lc3HuN1r/pOf/Nf8tF4Dhqzq3AmcBn6yqP5zxSNsiyY+welUOsAu4o/vak3wKuITV/9Pcc8BHgc8DnwX2At8Erq2qdj883GDtl7D6z+0CjgG/deqecidJfhb4IvA48PKw+/dYvY88D+d+o/VfzwTnf0cEXZI02k645SJJGoNBl6QmDLokNWHQJakJgy5JTRh0SWrCoEtSEwZdkpr4P4b5C0kVzvDzAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "et que, au dela de 25.0 ,on ne commande plus rien, xuopt=0\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "On vérifie aussi la formule de s donnée dans le cours (p.11 cours-4) donne les mêmes résultats.\n", "\n", "2) Formule du cours: valeur de s=25.000000 et de S=49.000000\n", "\n" ] } ], "source": [ "# On regarde maintenant un cas ou le vendeur à déjà des journaux \n", "# et ou il paye un coup fixe s'il commande des journaux \n", "# on voit une stratégie [s,S] \n", "\n", "def Jtilde(u,x,pi,wi):\n", " return cf*(u>0) + J(u+x,pi,wi) -c*x\n", "\n", "# Le but est de verifier que l'on a une stratégie [s,S]\n", "\n", "# Choix du modèle : poisson , discrete, binomiale\n", "pi, wi, W, title = choisir_loi(binomiale)\n", "\n", "# Calcul de S\n", "# S=uopt, où uopt est l'argmin de J(u) (cf Slide 11/20)\n", "# uopt est caclulé dans la fonction résultat\n", "uopt=resultats(pi,wi,dessin='non') # on ne veux pas de dessin ici\n", "S=uopt \n", "\n", "# Il nous faut maintenant calculer s\n", "size=int(max(wi))\n", "xv=np.linspace(0,2*size, num=2*size+1)\n", "xuopt=xv.copy()\n", "U=np.linspace(0,2*size, num=2*size+1)\n", "Ju=U.copy()\n", "\n", "for i in range(0, xv.size):\n", " for j in range(0, U.size):\n", " Ju[j]= Jtilde(U[j],xv[i],pi,wi) # à xv[i] stock fixé, on calcule les coûts pour les commandes U[j] \n", " k = np.argmin(Ju) # on optimize en Ju\n", " xuopt[i]= U[k] # ca qui nous donne la commande optimale pour le stock initial xv[i]\n", "\n", "# s = la valeur la plus grande où le contrôle est non nul\n", "# on cherche donc l'indice iopt de la valeur la plus petite où le \n", "# contrôle est non nul. xv[iopt-1] donne la valeur de s cherchée.\n", "iopt=-1;\n", "for i in range(0, xuopt.size):\n", " if xuopt[i] == 0:\n", " iopt=i\n", " break\n", "# (iopt-1) est le dernier indice ou la controle est non nul\n", "# et s est la valeur de x correspondante xv[iopt-1]\n", "s = xv[iopt-1]\n", "print(\"1) Calcul par une méthode brutale : valeur de s=%f et de S=%f\\n\" % (s, S))\n", "\n", "plt.clf()\n", "\n", "# on vérifie que pour x en dessous de s, x+uopt=cte=S\n", "print(\"On vérifie que pour x en dessous de \",s,\", x+uopt=cte=\",S)\n", "limite=iopt-1 # int(s)\n", "plt.plot(xv[:limite],xv[:limite]+xuopt[:limite])\n", "plt.show()\n", "\n", "# au dela xuopt=0 (on ne commande rien), donc on est sur la droite y = x!\n", "print(\"et que, au dela de \",s,\",on ne commande plus rien, xuopt=0\")\n", "#plt.plot(xv[int(s)+1:150],xv[int(s)+1:150]+xuopt[int(s)+1:150])\n", "plt.plot(xv[limite+1:150],xuopt[limite+1:150])\n", "plt.show()\n", "\n", "# On vérifie le formule de s donnée dans le cours (p.11 cours-4) fonctionne\n", "print(\"On vérifie aussi la formule de s donnée dans le cours (p.11 cours-4) donne les mêmes résultats.\\n\")\n", "Jv=np.zeros(xv.size);\n", "for i in range(0,xv.size):\n", " Jv[i]=J(xv[i],pi,wi)\n", "JS=J(S,pi,wi) # J(S)\n", "costs = Jv - (cf + JS)\n", "# calcul du plus grand z où J(z) >= c_F + J(S)\n", "iopt=-1\n", "for i in range(0,xv.size):\n", " if costs[i] <=0:\n", " iopt=i\n", " break\n", "if iopt < 0: \n", " s=0 \n", "else:\n", " s=xv[iopt-1]\n", " \n", "print(\"2) Formule du cours: valeur de s=%f et de S=%f\\n\" % (s, S))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Le problème à plusieurs pas de temps $T$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__L'équation de Bellman, cas général__\n", "\n", "On cherche à calculer la fonction valeur $V(t,x)$ en utilisant l'équation de programmation dynamique (ou équation de Bellman) donnée par le cours (slide 15 p.80). $V(t,x)$ représente la valeur du critère pour le meilleur contrôle\n", "possible en partant de $x$ à l'instant $t$.\n", "\n", "Pour cela, il faut connaître:\n", "\n", "1) la dynamique de la chaîne contrôlée ${\\color{red} f}(x,u,w)$ fonction de la postion actuelle, du contrôle $u$ et de l'aléa $w$. $X$ suit alors une dynamique fonction de la suite des choix de contrôles $U_t$\n", "$$\n", "X_{t+1} = {\\color{red} f}(X_t,U_t,W_{t+1})\n", "$$\n", "\n", "2) le coût au pas de temps $n$, ${\\color{red} L}(n,x,u)$ fonction du temps $n$, du contrôle $u$ et de la position actuelle $x$.\n", "\n", "3) le coût final ${\\color{red} K}(x)$.\n", "\n", "Avec ces ingrédient l'équation de Bellman s'écrit (slide 15 p. 80). \n", "\n", "$$\n", "\\left\\{\n", " \\begin{array}{l}\n", " v(n,x) = \\min_{u\\in A} \\left\\{ {\\bf E}(v(n+1,{\\color{red} f}(x,u,W_{t+1})) + {\\color{red} L}(n,x,u) \\right\\},\n", " \\quad n< N\\\\\n", " v(N,x) = {\\color{red} K}(x),\n", " \\end{array}\n", " \\right. \n", "$$\n", "\n", "Noter que par rapport aux transparents, pour simplifier, on a choisi de ne pas faire dépendre $L$ de $W_{t+1}$ mais \n", "uniquement de $x$ et $u$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Le cas du vendeur de journaux: rappels__\n", "\n", "Dans le cas du vendeur de journaux, les fonctions ${\\color{red} f}$, ${\\color{red} L}$ et ${\\color{red} K}$ \n", "sont définies dans le cours de la façon suivante.\n", "\n", "1) La fonction ${\\color{red} f}$ est donnée (voir slide 12 p.68) par ${\\color{red} f}(x,u,w)=x+u-w$. __Interprétation?__\n", "\n", "2) La fonction ${\\color{red} K}$ est donnée (voir le slide 4 p.74. __Interprétation?__\n", "$$\n", " K(x) = c_s (x)_+ + c_M (-x)_+. \n", "$$\n", "\n", "3) La fonction $L$ vaut ${\\color{red} L}(1,u,x)=c_0(u,x)$ et pour $t> 1$, ${\\color{red} L}(t,u,x)=c_t(u,x)$, les fonctions $c_0$ et $c_t$ étant définies sur le slide 4 p.74. __Interprétation?__\n", "\n", "$$\n", "c_0 (u,x) = c_F \\inde{u>0} + cu\n", "$$\n", "\n", "$$\n", "c_t (u,x) = c_F \\inde{u>0} + cu + c_s (x)_+ + c_M (-x)_+\n", "$$\n", "\n", "\n", "Le temps va de $t=1$ à $t=T$. \n", "\n", "Pour commencer on pose $T=2$ et l'on souhaite vérifier que l'on retrouve le problème du vendeur à un pas de temps." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "alpha = 1\n", "\n", "def ct(u,x):\n", " # coût instantané pour t autre que la date de départ \n", " return cf*(u>0) + c*u + alpha*cs*np.maximum(x,0) + alpha*cm*np.maximum(-x,0) \n", "\n", "def c0(u):\n", " # coût instantané pour t=1 \n", " return cf*(u>0) + c*u\n", "\n", "def K(x):\n", " # coût final \n", " return cs*np.maximum(x,0) + cm*np.maximum(-x,0) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On tronque la dynamique pour rester dans un domaine borné $[-100,100]$." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "xmin = -200; xmax = 200;\n", "\n", "def f(x,u,w):\n", " return min(max(x+u-w,xmin),xmax)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Question 1.__ On commence avec $T=2$ pour retrouver les résultats du vendeur de journaux à un pas de temps.\n", "Calul de $V_T$. " ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "calcul de V_t pout t=3\n", "calcul de V_t pout t=2\n", "calcul de V_t pout t=1\n" ] } ], "source": [ "# Choix du modèle : poisson , discrete, binomiale\n", "pi, wi, W, title = choisir_loi(discrete)\n", "\n", "T=4 # l'Horizon \n", "\n", "etats= np.linspace(xmin,xmax, num=-xmin+xmax+1) ## les etats possibles (nbre de journeaux en stock) dans un domaine borné \n", "allu= np.linspace(0,xmax,num=xmax+1) ## les commandes de journaux possibles\n", "\n", "VT = pow(alpha,T)*K(etats); # fonction de Bellman en T\n", "UT = 0*etats; # pas de contrôle en T\n", "\n", "# On stocke les fonctions de Bellman dans $V$ and le contrôle optimal dans $U$.\n", "V=[VT]; U=[UT];\n", "\n", "for j in range(0,T-1):\n", " t=T-1-j\n", " print(\"calcul de V_t pout t=%d\" % t)\n", " Vtp1=V[0]\n", " Vt = 0*etats;\n", " Ut = float('nan')*np.ones(-xmin+xmax+1); \n", " for i in range(0,etats.size):\n", " # on boucle sur les états possibles \n", " # x= AFAIRE \n", " mcost= float('inf') # on initialise \"mcost\" à +infty\n", " # à la fin du corps de la boucle qui suit \"mcost\" contiendra le coût optimal \n", " # pour tout les états et à l'instant t \n", " for k in range(0,allu.size):\n", " # boucle sur les contrôles possible \n", " # le contrôle courant est u \n", " # u = AFAIRE \n", " # on va calculer dans \"cost\" le cout obtenu pour ce contrôle \"u\" \n", " cost=0\n", " for l in range(0,wi.size):\n", " # boucle sur les aléas \"w\"\n", " # w = AFAIRE depend de l et wi \n", " # calculer l'état atteint si on part de x que le contrôle est u et l'aléa w \n", " # xtp1= AFAIRE \n", " # dans ix il faut trouver l'indice dans la liste des etat de l'état xtp1\n", " # ix = A FAIRE on pourra utiliser les méthodes tolist() et index() : \n", " # i=vecteur.tolist().index(x) permet de retrouver dans \"vecteur\"\n", " # l'indice \"i\" tel que vecteur[i]=x\n", " # calculer le cout de Bellman pour (x,u,w)\n", " # On fera attention au fait que la fonction de coût instantannée dépend est \n", " # c0 ou ct suivant que t==1 ou t != 1 \n", " # On n'oubliera pas que l'on doit utiliser pi \n", " # lcost = {le coût pour l'aléa w} * proba(w)\n", " #if t==1:\n", " # lcost = 0 # AFAIRE \n", " #else:\n", " # lcost = 0 # AFAIRE \n", " # cost = sum_w {le coût pour l'aléa w} * proba(w) = E(coût)\n", " # on rajoute lcost à cost \n", " cost = cost + lcost \n", " # on a maintenant le cout \"cost\" correspondant au controle \"u\", \n", " # on doit le comparer au minimum des couts \"mcost\" \n", " # puisque \"mcost\" doit contenir la plus petite valeur de tous les contrôles \n", " # mettre à jour \"mcost\" en fonction de \"cost\"\n", " # mettre à jour l'indice \"kumin\" correspondant au controle minimisant\n", " # on conserve la valeur de \"la fonction de valeur\" Vt[i] correspondant à etats[i] en l'instant t\n", " # et le controle optimal Ut[i] correspondant à etats[i] à l'instant t\n", " # Il y a un décalage de 1, Vt[0] correspond à T=1\n", " Vt[i]= mcost\n", " Ut[i]= allu[kumin]\n", " V=np.concatenate(([Vt],V)) \n", " U=np.concatenate(([Ut],U))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Dessiner les fonctions valeurs à $t=1$ et $t=T$" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "t=1;plt.plot(etats,V[t-1])" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "t=T;plt.plot(etats,V[t-1]) # en t=T on retrouve la fonction deterministe correspondant au cout final" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Dessiner les commandes optimales à $t=1$ et retrouver le fait que la commande optimale est une stratégie $[s,S]$ ?" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "t=1;plt.plot(etats,U[t-1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Recommencer le calcul en faisant $T=3$, $T=4$, $T=5$, ... et regarder l'impact sur l'évolution du contrôle optimal." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "T = 4\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "print('T = ',T)\n", "for j in range(0,T):\n", " text='t = '+str(j+1)\n", " plt.plot(etats,V[j],label=text)\n", "plt.legend(loc='upper right')" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "T = 4\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "print('T = ',T)\n", "for j in range(0,T-1):\n", " text='t = '+str(j+1)\n", " plt.plot(etats,U[j],label=text)\n", "plt.legend(loc='upper right')\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.2" } }, "nbformat": 4, "nbformat_minor": 2 }